package design.z1_observer.wechat.subject;

import design.z1_observer.wechat.observer.Observer;

/**
 * 主题接口，所有主题必须实现此接口
 */
public interface Subject {

    /**
     * 注册一个观察者
     *
     * @param observer
     */
    void registerObserver(Observer observer);

    /**
     * 移除一个观察者
     *
     * @param observer
     */
    void removeObserver(Observer observer);

    /**
     * 当主题状态改变时，这个方法会被调用，以通知所有的观察者
     */
    void notifyObservers();


}
